#if !defined(ximera_gui_cegui_progressbar_hpp)
#define ximera_gui_cegui_progressbar_hpp

// -----------------------------------------------------------

#include <ximera/gui/iprogressbar.hpp>
#include <ximera/gui/cegui/windowtemplate.hpp>

#include <elements/CEGUIProgressBar.h>

namespace ximera { namespace gui { namespace cegui
{
    class XIMERA_PLUGIN_API ProgressBar : public WindowTemplate<IProgressBar>
    {
    public:
        ProgressBar(CEGUI::ProgressBar* ceguiProgressBar);

        virtual Real percentage() const;
        virtual void percentage(Real value);

        virtual Int32 value() const;
        virtual void value(Int32 val);

        virtual Int32 stepSize() const;
        virtual void stepSize(Int32 value);

        virtual Int32 minValue() const;
        virtual void minValue(Int32 value);

        virtual Int32 maxValue() const;
        virtual void maxValue(Int32 value);

        virtual void step();

        CEGUI::ProgressBar* ceguiProgressBar() const { return static_cast<CEGUI::ProgressBar*>(_ceguiWindow); }

    private:
        Int32 _value;
        Int32 _minValue;
        Int32 _maxValue;
        Int32 _stepSize;
    };
}}}

// -----------------------------------------------------------

#endif
